In present days, content is increasingly made available in digital format to users, for example by means of the Internet, a broadcast medium, or by means of a digital data carrier such as CD or DVD. Consumer electronics (CE) products, such as televisions, settop boxes, and audio equipment, are equipped with digital data processing capabilities to render these digital contents.
Digital rights management systems have been introduced to control the distribution of digital content to legitimate users. Typically, digital rights management systems use an encryption technique which allows only legitimate users to decrypt the content. The implementation of such encryption techniques in the consumer devices may be obfuscated to make it more difficult for an attacker to find out the value of the key. Examples of ciphers commonly in use for many different kinds of applications are DES, AES, RSA, and the method disclosed in WO9967918.
In relation to key handling in digital rights management systems, for playback a media player has to retrieve a decryption key from a license database. It then has to store this decryption key somewhere in memory for the decryption of the encrypted content. This gives an attacker two options for an attack on the key. Firstly, reverse engineering of the license database access function could allow the attacker to retrieve asset keys from all license databases. Secondly, by observation of the accesses to memory during content decryption, it is possible to retrieve the asset key. In both cases the key is considered to be compromised.
In the field of software implemented cryptographic systems, the need for tamper resistant software products has given rise to obfuscation techniques preventing attackers from obtaining cryptographic keys and from unauthorized copying. One of these obfuscation techniques involves providing a white-box implementation of a cryptographic algorithm. White-box implementations of cryptographic algorithms are implementations that hide some or all of the inner workings of a cryptographic algorithm against a white-box attack, i.e., an attack in which an attacker can observe some or all of the instructions executed by the processor. In some cases, the attacker has some form of control over the operating environment, which allows him to observe at least part of the cryptographic operations and identify at least part of the cryptographic key used in the algorithm during execution. For example he can execute the implementation inside a debugging environment or virtual machine and thereby observe all operations, manipulate data buffers and monitor the execution flow.
In other cases, the attacker can cause the operating environment to ‘leak’ or divulge part of the implementation or part of the contents of data buffers during execution of the cryptographic algorithm. For example, he may be able to use a buffer overflow attack to extract parts of the cryptographic implementation. If the right part is extracted, he may thereby learn the cryptographic key or particular settings in the implementation that allow him to undo some or all of the cryptographic protection.
White-box implementations hide some or all of the inner workings of a cryptographic algorithm, in particular the key data. This can be done in a variety of ways. A popular technique for creating white-box implementations is using a combination of encoding tables in the cryptographic algorithm with random bijections representing compositions rather than individual steps. The decryption key and the decryption algorithm are effectively turned into one monolithic block. No single part of this block reveals any information about the inner workings of the algorithm or the key. In fact even when given the entire white-box implementation it is extremely difficult to reverse engineer the original algorithm or the decryption key used. Another technique, disclosed in e.g. European patent application serial number 08155798.5 is obfuscation of an exponent in cryptographic algorithms such as RSA.
Currently, white-box implementations are only known for a limited number of ciphers. “White-Box Cryptography and an AES Implementation”, by Stanley Chow, Philip Eisen, Harold Johnson, and Paul C. Van Oorschot, in Selected Areas in Cryptography: 9th Annual International Workshop, SAC 2002, St. John's, Newfoundland, Canada, Aug. 15-16, 2002, referred to hereinafter as “Chow 1”, and “A White-Box DES Implementation for DRM Applications”, by Stanley Chow, Phil Eisen, Harold Johnson, and Paul C. van Oorschot, in Digital Rights Management: ACM CCS-9 Workshop, DRM 2002, Washington, DC, USA, Nov. 18, 2002, referred to hereinafter as “Chow 2”, disclose methods of creating white-box implementations of cryptographic algorithms, in particular for the cryptographic algorithms known as AES and DES.